home *** CD-ROM | disk | FTP | other *** search
/ Delphi Magazine Collection 2001 / Delphi Magazine Collection 20001 (2001).iso / DISKS / ISSUE10 / FILES / DESKTOPU.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1996-02-28  |  2.0 KB  |  100 lines

  1. unit Desktopu;
  2.  
  3. interface
  4.  
  5. uses
  6.   SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  7.   Forms, Dialogs, StdCtrls;
  8.  
  9. type
  10.   TForm1 = class(TForm)
  11.     ItemEdt: TEdit;
  12.     ItemsLst: TListBox;
  13.     AddBtn: TButton;
  14.     SortBtn: TButton;
  15.     ExitBtn: TButton;
  16.     DelBtn: TButton;
  17.     procedure AddBtnClick(Sender: TObject);
  18.     procedure SortBtnClick(Sender: TObject);
  19.     procedure DelBtnClick(Sender: TObject);
  20.     procedure ExitBtnClick(Sender: TObject);
  21.     procedure FormClose(Sender: TObject; var Action: TCloseAction);
  22.   public
  23.     procedure Loaded; override;
  24.   end;
  25.  
  26. var
  27.   Form1: TForm1;
  28.  
  29. const
  30.   DataFile = 'DeskTops.Dsk';
  31.  
  32. implementation
  33.  
  34. {$R *.DFM}
  35.  
  36. procedure TForm1.AddBtnClick(Sender: TObject);
  37. begin
  38.   ItemsLst.Items.Add(ItemEdt.Text);
  39.   ItemEdt.Clear;
  40. end;
  41.  
  42. procedure TForm1.SortBtnClick(Sender: TObject);
  43. begin
  44.   ItemsLst.Sorted := True;
  45.   ItemsLst.Sorted := False;
  46. end;
  47.  
  48. procedure TForm1.DelBtnClick(Sender: TObject);
  49. var
  50.   Loop: Byte;
  51. begin
  52.   with ItemsLst, Items do
  53.   begin
  54.     BeginUpdate;
  55.     if not MultiSelect then
  56.       Delete(ItemIndex)
  57.     else
  58.       for Loop := Pred(Count) downto 0 do
  59.         if Selected[Loop] then
  60.           Delete(Loop);
  61.     EndUpdate;
  62.   end;
  63. end;
  64.  
  65. procedure TForm1.ExitBtnClick(Sender: TObject);
  66. begin
  67.   Close;
  68. end;
  69.  
  70. procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
  71. begin
  72.   with TFileStream.Create(DataFile, fmCreate) do
  73.     try
  74.       WriteComponent(ItemEdt);
  75.       WriteComponent(ItemsLst);
  76.     finally
  77.       Free;
  78.     end;
  79. end;
  80.  
  81. procedure TForm1.Loaded;
  82. begin
  83.   inherited Loaded;
  84.   try
  85.     with TFileStream.Create(DataFile, fmOpenRead or fmShareDenyWrite) do
  86.       try
  87.         ReadComponent(ItemEdt);
  88.         ReadComponent(ItemsLst);
  89.       finally
  90.         Free;
  91.       end;
  92.   except
  93.     { Smother desktop not found exception }
  94.     { as it wonÆt be found on the first run }
  95.     on EFOpenError do {nothing};
  96.   end;
  97. end;
  98.  
  99. end.
  100.